"""
私有属性和私有方法：
    私有属性：__属性名
        1. 私有属性只能在内部访问，不能在外部访问
        2. def ways(value): if value: self.__sex
    私有方法：__方法名
        1. 不能在外部进行调用
        2. 一般在在内部使用 self.__private()来进行调用

set/get 函数
    1. 设置和访问 私有属性
    2. def getName(self): return self.__name
       def setName(self, name): self.__name = name
    3. 外部调用: test.getName()
       外部修改: test.setName(name)

@property/@age.setter装饰器
    1. 设置和访问 私有属性
    2. @property def age(self): return self.__age
       @age.setter def age(self, age): self.__age = age
    3. 外部调用：test.age = 18
       print(test.age)

类方法和静态方法
    类方法：@classmethod
        调用：一般在外部使用类名来调用 Test.say()
        当然也可以使用对象来进行调用，但是不建议使用：test.say()
    静态方法：@staticmethod
        一般是在类中单独作为一个函数来使用，不建议在静态方法中使用泪数行、类方法、其它的静态方法等
        一般使用类名来进行调用

类中常见的特殊属性
    1. Test.__name__ 获取类的变量名，注意：Test
    2. Test.__dict__ 以字典的形式返回类中的属性和方法
    3. test.__dict__ 以字典的形式返回 对象 中的属性和方法
    4. Test.__bases__ 以元组的形式返回指定类的父类

类中常见的魔术方法
    1. def __str__(self): reutrn f"姓名是：{self.name},年龄是{self.age}"
        触发时机：当外界打印对象的时候触发，以字符串的形式返回
    2. def __repr__(self): return f"{self.name},{self.age}"
        触发时机：和__str__()功能蕾丝，若两者都存在，执行 __str__()

单继承
    没有构造函数的继承
        1. class Son(Father): def eat(self): pass def sonRun(self)
        2. son.eat() son.fatherRun()
    有构造函数的单继承
        1. 经典的写法：
            class Dog(Animal):
                def __init__(self,name,sex,age)
                    Animal.__init__(self,name,sex)
                    self.name = name
                    self.sex = sex
                    self.__age = age
        2. 隐式写法：
            class Dog(Animal)
                def __init__(self,name,sex,age)
                    super(Dog,self).__init__(self,name,sex)
                    self.age = age

多继承
    一个子类继承多个父类
    class Son(Father, Mother):
        def __init__(self,username,height,weight,age):
            Father.__init__(self,username)
            Mother.__init__(self,username,height,weight)
            self.age = age


"""
"""
疑问点：
    1. 首先就是python解释器内存处理机制
    2. 对于单继承，如何调用父类中的类方法和类属性，私有方法和私有属性
    3. 对于多继承中如果父类和子类具有相同的别名，如何选择的问题
"""




